package com.gxa.learning.core.pojo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.Column;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 培训计划的详细信息的页面
 *
 * @author YXQ
 * @date 2021/12/3 17:42
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TrainPlanVo implements Serializable {
    /**
     * 计划的编号
     */
    @Column(name = "plan_id")
    private Long id;

    /**
     * 计划的标题
     */
    @Column(name = "plan_title")
    private String title;

    /**
     * 计划的开始时间
     */
    @Column(name = "plan_start_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm;ss", timezone = "GMT+8")
    private Date start;

    /**
     * 计划的结束时间
     */
    @Column(name = "plan_end_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm;ss", timezone = "GMT+8")
    private Date end;

    /**
     * 计划的附件
     */
    @Column(name = "plan_document")
    private String document;

    /**
     * 计划的预算-总额
     */
    @Column(name = "plan_budget")
    private Long budget;

    /**
     * 计划的状态1.审批中2.审批通过3.审批未通过
     * 新建的计划默认状态是1.审批中
     */
    @Column(name = "type")
    private String type;

    /**
     * 计划的类型
     */
    @Column(name = "plan_ype")
    private String planType;

    /**
     * 审批过期截止时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GTM+8")
    @Column(name = "flowpath_node_expiration_date")
    private Date expirationDate;

    /**
     * 培训计划的标记
     */
    private String trainPlan = "培训计划";

    /**
     * 流程编号的id
     */
    private String flowPathId;

    /**
     * 审批人(用户编号)
     */
    private String userName;

    /**
     * 计划与预算的一对多的关系
     */
    private List<Budget> budgetList;

    /**
     * 计划与流程节点的一对多关系
     */
    private List<FlowPathNodeEasy> flowPathNodeEasyList;
}
